A brief discussion of the USB-OTG (Universal Serial Bus-On The Go) is deemed to be conducive to a proper understanding of the present invention. The USB-OTG allows USB device-to-device communications without the intervention or use of a computer. The session request protocol (SRP) is used to establish this logical connection, and the implementation of SRP may be associated with software real time requirements that may be difficult to achieve in some systems.
The USB is associated with an industry standard originally designed for personal computers as a low cost device for adding peripherals. The USB standard defines a host/peripheral relationship: the PC is the host, and devices that plug into it are known as peripherals. The USB has become indispensable because of its increasing use in devices such as mobile telephones, battery-operated devices such as PDAs, cellular phones and digital cameras, frequently leaving the PC out of the picture. Users may need to connect these battery-operated devices directly to each other, a use not supported by USB per se. To address this limitation, a supplement to the USB 2.0 specification, called USB On-The-Go (OTG) supplement was provided to enable mobile interconnectivity by defining how two devices may connect without the need for a computer host. Under USB OTG, a user plugs two devices together to establish a link. The devices take care of all the host/peripheral negotiations without any input from the user, to make the connectivity simple. Further, USB OTG defines two types of configurations: A-devices (devices that have a Standard-A or Mini-A plug inserted), are hosts by default when connected, and B-devices (devices that have a Standard-B or Mini-B plug inserted), are peripherals by default when connected. OTG-devices (formerly known as dual-role-devices) can be either an A-device or B-device, giving it the potential to be either host or peripheral. The status is negotiated between the devices.
There is need to cater for situations where user-devices need to be interconnected to communicate directly with each other without the use of a computer. For example, a USB color printer may need to be connected to a cellular camera phone to print some pictures, or a USB hard disk could be connected to a PDA to transfer several files. The USB OTG supplement was added to the USB 2.0 specification for this type of applications. This addendum supplement defines a protocol for OTG devices to establish communication and designate host and device roles during a session.
Some USB-OTG devices use a mini-AB receptacle, which can accept both mini-A USB plug or mini-B USB plugs. The USB-OTG uses the SRP to establish a session (connection) between two USB devices. In addition to providing new device definitions, USB OTG presents many challenges for portable electronic system engineers. USB OTG defines low power consumption for portable devices. When there is no active session, VBUS is turned off to save battery power. If the A-device turns off the VBUS, but the B-device wants to use the bus, the B-device can request that the A-device turn on VBUS. This request is identified as Session Request Protocol (SRP) by the USB OTG supplement and it is performed by data-line pulsing and VBUS pulsing.
In a “classic” USB system, the host provides power at a nominal 5V and at least 100 mA on the USB VBUS line at all times when the host is operational. This is acceptable when the host is attached to a line power source, but could be a crippling drain on a tiny device like a cellular phone. To conserve power and extend battery life, the On-The-Go supplement provides a means for an OTG host (the “A-device”) to turn off the VBUS when there is no activity on the bus. The Session Request Protocol (SRP) is a means for the peripheral device (the “B-device”) to request that the A-device re-enable VBUS and start a session. The B-device can initiate the SRP any time when at least 2 ms have elapsed since the end of the previous session. To initiate SRP, the B-device performs both “data-line pulsing” and “VBUS pulsing”. It does data-line pulsing by enabling its data line pull-up resistor (on D+ for full-speed devices, D− for low-speed devices) for between 5 ms and 10 ms. VBUS pulsing is performed by driving the VBUS to an intermediate voltage. The A-device detects either the data-line pulsing or VBUS pulsing and initiates a session by enabling the VBUS. The session lasts until the A-device decides that there is no more traffic that needs to occur on the bus, at which time it terminates the session by turning off the VBUS.
The OTG supplement of USB2.0 provides the framework necessary for operating dual-role OTG devices. In order to accomplish this functionality, a device needs to support the SRP and Host Negotiation Protocol (HNP). The SRP is used by the B-Device (the peripheral device, refer to FIG. 1) to request for a session and the HNP is used to override the default Host/Device functionality of the dual-role devices. The VBUS pin is used only as a supply pin in USB1.0 where the standard host supplies power to the peripheral devices through this pin. But in USB2.0, VBUS pin is a supply pin when a B device is connected to a standard host while it is used for SRP when two OTG compliant devices are connected. As aforesaid, SRP can be achieved using two methods, data-line pulsing and VBUS Pulsing, and the B-device needs to use both the methods to insure that the dual role A-device (the host) responds to SRP.